var sai = (function(){

	/**
	* author: zhao zhiguo
	* 添加页面加载完毕的时执行的事件
	* @@param fun 添加事件名
	*/
	var addLoadEvent = function(fun)
	{
		var oldonload = window.onload;
		if(typeof window.onload != 'function')
		{
			window.onload = fun;
		}
		else
		{
			window.onload = function()
			{
				oldonload();
				fun();
			}
		}
	}

	/**
	* author: zhao zhiguo
	* 指定元素前插入新元素
	* @param newElement 需要插入的新元素
	* @param targetElement 指定元素
	*/
	var insertAfter = function(newElement, targetElement)
	{
		var parent = targetElement.parentNode;
		//最后一个节点
		if(parent.lastChild == targetElement)
		{
			parent.appendChild(newElement);
		}
		else
		{
			parent.insertBefore(newElement, targetElement.nextSibling);
		}
	};

	/**
	* author: zhao zhiguo
	* 获取下一个相邻元素节点
	* @param node 目标节点对象
	* @param tagName 可选参数 下个相邻元素节点的标签名
	*/
	var getNextNode = function(node, tagName)
	{
		var nextNode = node.nextSibling;
		if(nextNode.nodeType==1)
		{
			if(tagName != null)
			{
				if(nextNode.nodeName.toLowerCase() == tagName.toLowerCase())
					return nextNode;
				else if(nextNode.nextSibling)
					return getNextNode(nextNode, tagName);
			}
			else
				return nextNode;
		}
		else if(nextNode.nextSibling)
			return getNextNode(nextNode, tagName);
		return null;
	}

	/**
	* author: zhao zhiguo
	* 获取上一个相邻元素节点
	* @param node 目标节点对象
	* @param tagName 可选参数 上个相邻元素节点的标签名
	*/
	var getPreviousNode = function(node, tagName)
	{
		var previousNode = node.previousSibling;
		if(previousNode.nodeType==1)
		{
			if(tagName != null)
			{
				if(previousNode.nodeName.toLowerCase() == tagName.toLowerCase())
					return previousNode;
				else if(previousNode.previousSibling)
					return getPreviousNode(previousNode, tagName);
			}
			else
				return previousNode;
		}
		else if(previousNode.previousSibling)
			return getPreviousNode(previousNode, tagName);
		return null;
	}

	/**
	 * 获取指定DOM下的指定DOM元素集合
	 * @author zhao zhiguo
	 * @param dom_Object 被提取的DOM
	 * @param tag 需要提取的DOM对象的tag
	 */
	var getDomSpecifiedDomList = function(dom_Object, tag){
		if(dom_Object != null && tag != null && tag != ""){
			var dom_childNodeList = dom_Object.childNodes;
			if(dom_childNodeList != null){
				for(var i = 0; i < dom_childNodeList.length; i++){
					var tagName = dom_childNodeList[i].nodeName;
					if(tagName.toLowerCase() == tag.toLowerCase()){
						
					}
				}
			}
		}
	}

	/**
	* author: zhao zhiguo
	* 创建拖拽表格
	* @param jsonData 拖拽表格显示的数据
	* @param direction 1横向(line)或2纵向(cross)显示
	*/
	var createDragTable = function(jsonData, direction, divId)
	{
		if(jsonData != null && jsonData != "")
		{
			if(jsonData.length != null && jsonData.length != "")
			{
				//横向
				if(direction == 1)
				{
					//获取总div
					var parentDiv = document.getElementById(divId);
					parentDiv.setAttribute("class", "parent");
					parentDiv.style.border = "1px red solid";
					parentDiv.style.display = "inline-block";

					//循环获取子集合div
					for(var i=0; i<jsonData.length; i++)
					{
						var tempLineDiv = document.createElement("div");
						tempLineDiv.setAttribute("class", "line");
						tempLineDiv.style.border = "1px red solid";
						tempLineDiv.style.padding = "10px";
						tempLineDiv.style.margin = "5px";
						parentDiv.appendChild(tempLineDiv);

						//循环获取单个拖拽div
						for(var k=0; k<jsonData[i].length; k++)
						{
							var tempSonDiv = document.createElement("div");
							tempSonDiv.style.margin = "5px";
							tempSonDiv.style.display = "inline";
							tempSonDiv.style.padding = "4px";
							tempSonDiv.style.border = "1px red solid";
							
							//添加数据内容
							tempSonDiv.innerHTML = jsonData[i][k].content;
							
							tempLineDiv.appendChild(tempSonDiv);
						}
					}
				}
				//纵向
				else if(direction == 2)
				{

				}
			}
		}
	};

	/**
	* author: zhao zhiguo
	* @param className 表单类名
	*/
	var serializeRollBackForm = function(className){
		//根据类名获取回滚验证表单集合
		var rollBackForm = document.getElementsByClassName(className);
		//申明回滚表单Json
		var rollBackFormData = {};
		for(var i=0; i<rollBackForm.length; i++)
		{
			//获取单个回滚表单元素
			var rollBackFormElement = rollBackForm[i];
			var rollBackFormElementTagName = rollBackFormElement.tagName;
			//判断元素种类  选择获取元素方式
			//当元素标签是Div
			if(rollBackFormElementTagName == "DIV")
			{
				//当表单元素数据不为空时
				if(rollBackFormElement.innerHTML != null && rollBackFormElement.innerHTML != "")
				{
					//判断元素数据名是否已在表单Json中存在
					if(rollBackFormData[rollBackFormElement.getAttribute("name")] !== undefined)
					{
						//判断元素数据名在表单Json中存在的类型Array  Object
						if(!rollBackFormData[rollBackFormElement.getAttribute("name")].push)
						{
							//当元素数据名存在 类型Object
							rollBackFormData[rollBackFormElement.getAttribute("name")] = [rollBackFormData[rollBackFormElement.getAttribute("name")]];
						}
						rollBackFormData[rollBackFormElement.getAttribute("name")].push(rollBackFormElement.innerHTML);
					}
					else
					{
						rollBackFormData[rollBackFormElement.getAttribute("name")] = rollBackFormElement.innerHTML;
					}
				}
			}
			//当元素标签是Input
			else if(rollBackFormElementTagName == "INPUT")
			{
				//当表单元素数据不为空时
				if(rollBackFormElement.value != null && rollBackFormElement.value != "")
				{
					//判断元素数据名是否已在表单Json中存在
					if(rollBackFormData[rollBackFormElement.getAttribute("name")] !== undefined)
					{
						//判断元素数据名在表单Json中存在的类型Array  Object
						if(!rollBackFormData[rollBackFormElement.getAttribute("name")].push)
						{
							//当元素数据名在
							rollBackFormData[rollBackFormElement.getAttribute("name")] = [rollBackFormData[rollBackFormElement.getAttribute("name")]];
						}
						rollBackFormData[rollBackFormElement.getAttribute("name")].push(rollBackFormElement.value);
					}
					else
					{
						rollBackFormData[rollBackFormElement.getAttribute("name")] = rollBackFormElement.value;
					}
				}
			}
		}
		return rollBackFormData;
	}

	//弹出层出现方法以后封装成单独的
	//后期contentDiv需要添加竖向滚动条
	/**
	* author: zhao zhiguo
	* a标签绑定弹出层事件
	* @param btnId 点击弹出按钮Id
	* @param alertDivId 弹出DivId
	* @param btnContent 弹出层btn内容
	* @param dialogTitle 弹出层标题
	* @param dialogContent 弹出层内容
	* @param options 可选参数, JSON格式(width, height, left, right, aButtonSize:"big small")
	* @param top 距离顶部
	* @param left 距离左边
	*/
	var alertOpen = function(btnId, btnContent, dialogTitle, dialogContent, options)
	{
		var alink = document.getElementById(btnId);
		if(alink != null)
		{
			if(alink.tagName == "A")
			{
				//弹出层高度
				var dialogDivHight;
				//弹出层能不能拖拽
				var canMove = false;
				alink.setAttribute("class", "zDialogBtnTagA");
				var span = document.createElement("span");
				span.setAttribute("class", "zDialogBtnTagSpan");
				//设置弹出Button大小
				//big
				if(options.aButtonSize == "big")
					span.style.padding = "7px 15px 7px 15px";
				//small 
				if(options.aButtonSize == "small")
					span.style.padding = "2px 4px 2px 4px";
				span.innerHTML = btnContent;
				alink.appendChild(span);
				var dialogDiv;
				var dialogDivHead;
				var changeDivSizeDiv;
				var dialogDivCloseDiv;
				//绑定 打开弹出层的点击事件
				alink.onclick = function()
				{
					if(dialogDiv == null)
					{
						//创建弹出层Div
						dialogDiv = document.createElement("div");
						dialogDiv.setAttribute("class", "dialogDiv");
						//设置弹出层width height
						if(options != null)
						{
							/**  设置弹出层高宽  ***/
							if(options.width != null && options.width != "")
								dialogDiv.style.width = options.width+"px";
							else
								dialogDiv.style.width = 500+"px";

							if(options.height != null && options.height != "")
							{
								dialogDiv.style.height = options.height+"px";
								dialogDivHight = options.height;
							}
							/**  设置弹出层高宽  ***/

							/**  设置弹出层定位  **/
							if((options.top != null && options.top != "") || (options.left != null && options.left != ""))
							{
								if(options.top != null && options.top != "")
									dialogDiv.style.top = options.top+"px";
								if(options.left != null && options.left != "")
									dialogDiv.style.left = options.left+"px";
							}
							else
							{
								//设置默认弹出层宽度
								dialogDiv.style.width = 700+"px";

								dialogDiv.style.height = 500+"px";
								dialogDivHight = 500;
								//设置默认弹出层定位  水平居中  上下居中
								dialogDiv.style.right = "50%";
								dialogDiv.style.left = "50%";
								dialogDiv.style.top = "50%";
								dialogDiv.style.transform = "translate(-50%, -50%)";
							}
							/**  设置弹出层定位  **/
						}
						else
						{
							//设置默认弹出层宽度
							dialogDiv.style.width = 700+"px";

							dialogDiv.style.height = 500+"px";
							dialogDivHight = 500;
							
							//设置默认弹出层定位  水平居中  上下居中
							dialogDiv.style.right = "50%";
							dialogDiv.style.left = "50%";
							dialogDiv.style.top = "50%";
							dialogDiv.style.transform = "translate(-50%, -50%)";
						}

						//创建弹出层Head
						dialogDivHead = document.createElement("div");
						dialogDivHead.setAttribute("class", "dialogDiv-head");
						dialogDiv.appendChild(dialogDivHead);
						//创建弹出层Title
						var dialogDivTitle = document.createElement("div");
						dialogDivTitle.setAttribute("class", "dialogDiv-title");
						//设置弹出层Title的内容
						dialogDivTitle.innerHTML = dialogTitle;
						dialogDivHead.appendChild(dialogDivTitle);
						//创建弹出层的内容Div
						var dialogContentDiv = document.createElement("div");
						dialogContentDiv.setAttribute("class", "dialogDiv-content");
						
						dialogContentDiv.innerHTML = dialogContent;
						dialogDiv.appendChild(dialogContentDiv);
						//创建弹出层关闭Button Div
						var footDiv = document.createElement("div");
						footDiv.setAttribute("class", "dialogDiv-foot");
						dialogDivCloseDiv = document.createElement("div");
						dialogDivCloseDiv.setAttribute("class", "dialogDiv-button");
						footDiv.appendChild(dialogDivCloseDiv);
						dialogDiv.appendChild(footDiv);
						//创建弹出层关闭Button A
						var dialogDivCloseA = document.createElement("a");
						dialogDivCloseA.setAttribute("class", "dialogDiv-buttonA");
						dialogDivCloseDiv.appendChild(dialogDivCloseA);
						//创建弹出层关闭Button span
						var dialogDivCloseSpan = document.createElement("span");
						dialogDivCloseSpan.setAttribute("class", "dialogDiv-buttonText");
						dialogDivCloseSpan.innerHTML = "关闭";
						dialogDivCloseA.appendChild(dialogDivCloseSpan);

						// 创建弹出层大小调整Div
						changeDivSizeDiv = document.createElement("div");
						changeDivSizeDiv.setAttribute("class", "dialogDiv-size");
						dialogDiv.appendChild(changeDivSizeDiv);

						document.getElementsByTagName("body")[0].appendChild(dialogDiv);
						//设定弹出层内容Div高度 = 弹出层高度 - head - foot - 45 ------- 这个45我也不知道为什么。。。
						dialogContentDiv.style.height = dialogDivHight - dialogDivHead.offsetHeight - footDiv.offsetHeight - 45 + "px";
					}

					/**  鼠标缩放Div事件  **/
					//
					//缩放事件鼠标坐标
					var changeDivSizeMouseX;
					var changeDivSizeMouseY;
					//弹出层是否可以缩放
					var canChangeSize = false;
					//当鼠标按下时
					changeDivSizeDiv.onmousedown = function(e)
					{
						var e = e || window.event;
						//获取
						changeDivSizeMouseY = e.clientY;
						changeDivSizeMouseX = e.clientX;
						canChangeSize = true;
					}

					/**  鼠标拖拽事件  **/
					//定义dialogDiv和鼠标点击的距离
					var xDistance;
					var yDistance;
					//绑定 移动弹出层的事件
					dialogDivHead.onmousedown = function(e)
					{
						var e = e || window.event;
						//计算鼠标按下位置和弹出层Div坐标距离
						xDistance = e.clientX-dialogDiv.getBoundingClientRect().left;
						yDistance = e.clientY-dialogDiv.getBoundingClientRect().top;
						canMove = true;
					}

					//绑定 鼠标移动事件
					document.onmousemove = function(event)
					{
						var e = e || window.event;
						//拖拽事件
						if(canMove)
						{
							dialogDiv.style.transform = "";
							dialogDiv.style.left = e.clientX - xDistance + "px";
	    					dialogDiv.style.top = e.clientY - yDistance + "px";
						}
						//缩放事件
						if(canChangeSize)
						{
							//获取弹出层变化高宽
							var addHeight = e.clientY - changeDivSizeMouseY;
							var addWidth = e.clientX - changeDivSizeMouseX;
							changeDivSizeMouseY = e.clientY;
							changeDivSizeMouseX = e.clientX;
							var divHeight = dialogDiv.style.height;
							var divWidth = dialogDiv.style.width;
							divHeight = divHeight.substring(0, divHeight.indexOf("p"));
							divWidth = divWidth.substring(0, divWidth.indexOf("p"));
							//弹出层高宽重新赋值
							dialogDiv.style.height = divHeight*1 + addHeight*1 + "px";
							dialogDiv.style.width = divWidth*1 + addWidth*1 + "px";
							//弹出层内容Div高度重新赋值
							var dialogContentHeight = dialogContentDiv.style.height;
							dialogContentHeight = dialogContentHeight.substring(0, dialogContentHeight.indexOf("p"));
							dialogContentDiv.style.height = dialogContentHeight*1 + addHeight*1 + "px";
						}
					}

					//绑定 鼠标放开事件
					document.onmouseup = function()
					{
						canMove = false;
						canChangeSize = false;
					}
					/**  鼠标拖拽事件  **/
					/**  鼠标缩放Div事件  **/


					//绑定 关闭弹出层的点击事件
					dialogDivCloseDiv.onclick = function()
					{
						//删除弹出层节点
						dialogDiv.parentNode.removeChild(dialogDiv);
						dialogDiv = null;
					}
				}
			}
			else
				return false;
		}
	}
	
	/**
	* 拖拽初始化方法
	* @author zhao zhiguo
	* @param mouseDragObj 鼠标触发拖拽事件对象
	* @param dragBody 拖拽作用对象
	*/
	var dragEventInit = function(mouseDragObj, dragBody)
	{
		if(mouseDragObj && dragBody)
		{
			//弹出层能不能拖拽
			var canMove = false;
			//定义dialogDiv和鼠标点击的距离
			var xDistance;
			var yDistance;
			//绑定 移动弹出层的事件
			mouseDragObj.onmousedown = function(e)
			{
				var e = e || window.event;
				//计算鼠标按下位置和弹出层Div坐标距离
				xDistance = e.clientX-dragBody.getBoundingClientRect().left;
				yDistance = e.clientY-dragBody.getBoundingClientRect().top;
				canMove = true;
			}
			//绑定 鼠标移动事件
			document.onmousemove = function(e)
			{
				var e = e || window.event;
				//拖拽事件
				if(canMove)
				{
					dragBody.style.transform = "";
					dragBody.style.left = e.clientX - xDistance + "px";
					dragBody.style.top = e.clientY - yDistance + "px";
				}
			}

			//绑定 鼠标放开事件
			document.onmouseup = function()
			{
				canMove = false;
			}
		}
	}

	/**
	* 初始化Div对象的缩放事件
	* @author zhao zhiguo
	* @param mouseTriggerObj 缩放事件鼠标触发对象
	* @param zoomEffectObj 缩放效果作用对象
	*/
	var zoomEventInit = function(mouseTriggerObj, zoomEffectObj)
	{
		if(mouseTriggerObj && zoomEffectObj)
		{

		}
	}

	//弹出层出现方法以后封装成单独的
	//后期contentDiv需要添加竖向滚动条
	/**
	* a标签绑定弹出层事件
	* @author: zhao zhiguo
	* @param btnId 点击弹出按钮Id
	* @param alertDivId 弹出DivId
	* @param btnContent 弹出层btn内容
	* @param dialogTitle 弹出层标题
	* @param dialogContent 弹出层内容
	* @param options 可选参数, JSON格式(width, height, left, right, aButtonSize:"big small")
	* @param top 距离顶部
	* @param left 距离左边
	*/
	var alertOpen_One = function(btnId, btnContent, dialogTitle, dialogContent, options)
	{
		var alink = document.getElementById(btnId);
		if(alink != null)
		{
			if(alink.tagName == "A")
			{
				//弹出层高度
				var dialogDivHight;
				alink.setAttribute("class", "zDialogBtnTagA");
				var span = document.createElement("span");
				span.setAttribute("class", "zDialogBtnTagSpan");
				//设置弹出Button大小
				//big
				if(options.aButtonSize == "big")
					span.style.padding = "7px 15px 7px 15px";
				//small
				if(options.aButtonSize == "small")
					span.style.padding = "2px 4px 2px 4px";
				span.innerHTML = btnContent;
				alink.appendChild(span);
				var dialogDiv;
				var dialogDivHead;
				var changeDivSizeDiv;
				var dialogDivCloseDiv;
				//绑定 打开弹出层的点击事件
				alink.onclick = function()
				{
					if(dialogDiv == null)
					{
						//创建弹出层Div
						dialogDiv = document.createElement("div");
						dialogDiv.setAttribute("class", "dialogDiv");
						//设置弹出层width height
						if(options != null)
						{
							/**  设置弹出层高宽  ***/
							if(options.width != null && options.width != "")
								dialogDiv.style.width = options.width+"px";
							else
								dialogDiv.style.width = 500+"px";

							if(options.height != null && options.height != "")
							{
								dialogDiv.style.height = options.height+"px";
								dialogDivHight = options.height;
							}
							/**  设置弹出层高宽  ***/

							/**  设置弹出层定位  **/
							if((options.top != null && options.top != "") || (options.left != null && options.left != ""))
							{
								if(options.top != null && options.top != "")
									dialogDiv.style.top = options.top+"px";
								if(options.left != null && options.left != "")
									dialogDiv.style.left = options.left+"px";
							}
							else
							{
								//设置默认弹出层宽度
								dialogDiv.style.width = 700+"px";

								dialogDiv.style.height = 500+"px";
								dialogDivHight = 500;
								//设置默认弹出层定位  水平居中  上下居中
								dialogDiv.style.right = "50%";
								dialogDiv.style.left = "50%";
								dialogDiv.style.top = "50%";
								dialogDiv.style.transform = "translate(-50%, -50%)";
							}
							/**  设置弹出层定位  **/
						}
						else
						{
							//设置默认弹出层宽度
							dialogDiv.style.width = 700+"px";

							dialogDiv.style.height = 500+"px";
							dialogDivHight = 500;

							//设置默认弹出层定位  水平居中  上下居中
							dialogDiv.style.right = "50%";
							dialogDiv.style.left = "50%";
							dialogDiv.style.top = "50%";
							dialogDiv.style.transform = "translate(-50%, -50%)";
						}

						//创建弹出层Head
						dialogDivHead = document.createElement("div");
						dialogDivHead.setAttribute("class", "dialogDiv-head");
						dialogDiv.appendChild(dialogDivHead);
						//创建弹出层Title
						var dialogDivTitle = document.createElement("div");
						dialogDivTitle.setAttribute("class", "dialogDiv-title");
						//设置弹出层Title的内容
						dialogDivTitle.innerHTML = dialogTitle;
						dialogDivHead.appendChild(dialogDivTitle);
						//创建弹出层的内容Div
						var dialogContentDiv = document.createElement("div");
						dialogContentDiv.setAttribute("class", "dialogDiv-content");

						dialogContentDiv.innerHTML = dialogContent;
						dialogDiv.appendChild(dialogContentDiv);
						//创建弹出层关闭Button Div
						var footDiv = document.createElement("div");
						footDiv.setAttribute("class", "dialogDiv-foot");
						dialogDivCloseDiv = document.createElement("div");
						dialogDivCloseDiv.setAttribute("class", "dialogDiv-button");
						footDiv.appendChild(dialogDivCloseDiv);
						dialogDiv.appendChild(footDiv);
						//创建弹出层关闭Button A
						var dialogDivCloseA = document.createElement("a");
						dialogDivCloseA.setAttribute("class", "dialogDiv-buttonA");
						dialogDivCloseDiv.appendChild(dialogDivCloseA);
						//创建弹出层关闭Button span
						var dialogDivCloseSpan = document.createElement("span");
						dialogDivCloseSpan.setAttribute("class", "dialogDiv-buttonText");
						dialogDivCloseSpan.innerHTML = "关闭";
						dialogDivCloseA.appendChild(dialogDivCloseSpan);

						// 创建弹出层大小调整Div
						changeDivSizeDiv = document.createElement("div");
						changeDivSizeDiv.setAttribute("class", "dialogDiv-size");
						dialogDiv.appendChild(changeDivSizeDiv);

						document.getElementsByTagName("body")[0].appendChild(dialogDiv);
						//设定弹出层内容Div高度 = 弹出层高度 - head - foot - 45 ------- 这个45我也不知道为什么。。。
						dialogContentDiv.style.height = dialogDivHight - dialogDivHead.offsetHeight - footDiv.offsetHeight - 45 + "px";
					}

					//弹出层绑定拖拽事件
					sai.dragEventInit(dialogDivHead, dialogDiv);
					//弹出层绑定缩放事件

					//绑定 关闭弹出层的点击事件
					dialogDivCloseDiv.onclick = function()
					{
						//删除弹出层节点
						dialogDiv.parentNode.removeChild(dialogDiv);
						dialogDiv = null;
					}
				}
			}
			else
				return false;
		}
	}

	/**
	* 控件失焦验证数据
	*@param widgetId 需要验证数据控件id
	*@param ajaxUrl	验证地址
	*@param checkResultWidgetId 验证结果数据控件id
	*@param dataId 提交的数据对象的id
	*/
	var onblurAjaxCheck = function(widgetId, ajaxUrl, checkResultWidgetId, dataId)
	{
		var widgetObj = document.getElementById(widgetId);
		if(widgetObj)
		{
			widgetObj.onblur = function()
			{
				var checkValue = this.value;
				var checkValueName = this.name;
				if(checkValue && ajaxUrl)
				{
					var objId;
					var objIdName;

					if(dataId != null)
					{
						var objIdwidget = document.getElementById(dataId);
						objId = objIdwidget.value;
						objIdName = objIdwidget.name;
					}
					else
					{
						objId = "";
						objIdName = "id";
					}
					$.post(
						ajaxUrl,
						{
							[checkValueName] : checkValue,
							[objIdName] : objId
						},
						function(data)
						{
							var checkResultWidget = document.getElementById(checkResultWidgetId);
							if(data == "TRUE_01")
							{
								checkResultWidget.value = 0;
							}
							else
							{
								checkResultWidget.value = 1;
							}
						}
					)	
				}
			}
		}
	}

	/**
	 * 比较两个数字大小
	 * @author zhao zhiguo
	 * @param num1 一个数字
	 * @param num2 另一个数字
	 */
	var compareNum = function(num1, num2){

	}

	return {
	//添加页面加载完毕的时执行的事件
	addLoadEvent : addLoadEvent,

	/************************** DOM操作 start *********************************/
	//指定元素后插入新元素
	insertAfter : insertAfter,
	//获取下一个元素节点
	getNextNode : getNextNode,
	//获取上一个元素节点
	getPreviousNode : getPreviousNode,
	//获取指定DOM下的指定DOM集合
	getDomSpecifiedDomList : getDomSpecifiedDomList,
	/************************** DOM操作 end *********************************/

	//创建拖拽表格
	createDragTable : createDragTable,
	
	/************************** 表单操作 start *********************************/
	//回滚验证表单序列化
	serializeRollBackForm : serializeRollBackForm,
	/************************** 表单操作 end *********************************/
	
	//Div弹出层
	alertOpen : alertOpen,
	//拖拽方法   可以根据参数获取拖拽移动的对象
	dragEventInit : dragEventInit,
	//Div 缩放事件
	zoomEventInit : zoomEventInit,
	//Div弹出层 1.0
	alertOpen_One : alertOpen_One,
	//失焦异步验证
	onblurAjaxCheck : onblurAjaxCheck,
	//生成图片缩略图
	//生成树
	//web端Excel编辑模板

	/************************** 基础 start *********************************/
	//比较两个数字大小
	compareNum : compareNum

	/************************** 基础 end *********************************/

	/************************** file base start *********************************/
	
	//获取文件大小
	//获取文件MD5值\hashcode

	/************************** file base end *********************************/

	};

})();